#ifndef CBOATENEMYBEHAVIOUR_H
#define CBOATENEMYBEHAVIOUR_H

#include "../include/CDefaultEnemyBehaviour.h"

//**************************
//Manage the behaviour of an Enemy
//**************************
class CBoatEnemyBehaviour : public CDefaultEnemyBehaviour
{
    public:
        //**************************
        //Description : Constructor
        //Parameters : Value for m_iX, m_iY,
        //              m_iSpeedX, m_iSpeedY,
        //              m_iWidth, m_iHeight,
        //              the ratio for the collision box
        //              the type of colision
        //              m_iLives
        //              m_iNbPoints
        //Note : None
        //**************************
        CBoatEnemyBehaviour(int _iX = 0, int _iY = 0,
                            int _iSpeedX = 1, int _iSpeedY = 1,
                            int _iWidth = 0, int _iHeight = 0,
                            float _fRatioW = 1.0f, float _fRatioH = 1.0f,
                            TYPE_COLLISION _iTypeCollision = LAND,
                            int _iLives = 6,
                            int _iNbPoints = 4000);

        //**************************
        //Description : Copy Constructor
        //Parameters : A CBoatEnemyBehaviour
        //Note : None
        //**************************
        CBoatEnemyBehaviour(CBoatEnemyBehaviour & _BoatEnemy);

        //**************************
        //Description : Destructor
        //Parameters : None
        //Note : None
        //**************************
        virtual ~CBoatEnemyBehaviour();

        //**************************
        //Description : The entity shoot
        //Parameters : The tab of animations shot and the screen
        //Return Value : True if the enemy has shot, otherwise false
        //Note : Virtual because the way of shooting depends on the entity
        //**************************
        virtual bool Shoot(CSpriteAnimation * _SpriteAnimationShot, SDL_Surface * _screen);

        //**************************
        //Description : Update the trajectory of the entity
        //Parameters : None
        //Return Value : None
        //Note : None
        //**************************
        virtual void EntityTrajectory();
};
#endif
